#ifndef ERROR_H_
#define ERROR_H_

#include <list>
#include <iostream>
using namespace std;


enum tipoErro {
	LEXICO, SINTATICO, SEMANTICO, MEPA
};

class Error
{
public:
	Error();
	Error(tipoErro);
	
	/*
	 * set
	 */
	void setLinha(int);
	void setConteudo(string);
	void setTypeError(tipoErro);
	void setNextToken(string);
	
	/*
	 * get
	 */
	string getNextToken() const;
	tipoErro getTipoError() const;
	int getLinha() const;
	string getConteudo() const;
	bool hasErro() const;
	
	/*
	 * funcoes
	 */
	
	void imprimirErroSintatico(int);
	
	virtual ~Error();

private:
	tipoErro typeError;
	int linha;
	string conteudo;
	string nextToken;
	bool hasError;
};

#endif /*ERROR_H_*/
